#include <iostream>
#include <vector>
using namespace std;

// 这道题和前天那一道几乎一模一样
// 之前那一道要求输出子串，这道只要输出子串的长度
int common_substr_length(string s1, string s2)
{
    if(s1.size() > s2.size())
        swap(s1, s2);
    
    int len1 = s1.size() + 1;
    int len2 = s2.size() + 1;

    vector<vector<int>> dp(len1, vector<int>(len2, 0));

    int max_size = 0;

    for(int i = 1; i <= s1.size(); i++)
    {
        for(int j = 1; j <= s2.size(); j++)
        {
            if(s1[i - 1] == s2[j - 1])
                dp[i][j] = dp[i - 1][j - 1] + 1;
            if(dp[i][j] > max_size)
                max_size = dp[i][j];
        }
    }

    // for(int i = 0; i <= s1.size(); i++)
    // {
    //     for(int j = 0; j <= s2.size(); j++)
    //         cout << dp[i][j];
    //     cout << endl;
    // }

    return max_size;
}

int main() {
    string s1, s2;
    cin >> s1 >> s2;
    cout << common_substr_length(s1, s2) << endl;
    return 0;
}
